package com.demo.backtemplate.exception.lib;

/**
 * Date: 2025/4/23/20:01
 */

import com.xlf.utility.ErrorCode;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;

/**
 * 非法数据异常
 * <p>
 * 该类用于定义非法数据异常;
 * 该类继承自 {@link RuntimeException} 类;
 * 该类使用 {@link Getter} 注解标记;
 * 该类使用 {@link ErrorCode}
 *
 * @author xiao_lfeng
 * @version v1.0.0
 * @since v1.0.0
 */
@Getter
public class IllegalDataException extends RuntimeException {
    private final ErrorCode errorCode;

    /**
     * 构造函数
     * <p>
     * 该构造函数用于创建一个非法数据异常;
     * 该构造函数使用 {@link ErrorCode} 作为参数;
     *
     * @param errorCode 错误码
     */
    public IllegalDataException(@NotNull ErrorCode errorCode) {
        this(errorCode, errorCode.getMessage());
    }

    public IllegalDataException(@NotNull ErrorCode errorCode, String message) {
        super(message);
        this.errorCode = errorCode;
    }
}
